package pe.com.bn.sach.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import pe.com.bn.sach.domain.Bnchf05Observaciones;
import pe.com.bn.sach.domain.Bnchf13Expediente;
import pe.com.bn.sach.domain.Bnchf23ExpDetFamAdic;
import pe.com.bn.sach.domain.Bnchf23ExpDetTitAdic;
import pe.com.bn.sach.domain.Bnchf23ExpFamCtaPeriodo;
import pe.com.bn.sach.domain.Bnchf23ExpFamCuentas;
import pe.com.bn.sach.domain.Bnchf23ExpIngrFamAdic;
import pe.com.bn.sach.domain.Bnchf23ExpIngrTitAdic;
import pe.com.bn.sach.domain.Bnchf23ExpIngresoFamiliar;
import pe.com.bn.sach.domain.Bnchf23ExpIngresoTitular;
import pe.com.bn.sach.domain.Bnchf23ExpTitCtaPeriodo;
import pe.com.bn.sach.domain.Bnchf23ExpTitCuentas;
import pe.com.bn.sach.domain.Bnchf33PrestamoExpediente;
import pe.com.bn.sach.domain.Bnchf41UnidadProc;
import pe.com.bn.sach.domain.Bnchf42Actividad;
import pe.com.bn.sach.domain.Bnchf54ParametroProducto;
import pe.com.bn.sach.domain.Bnchf67DireccionPers;
import pe.com.bn.sach.domain.Bnchf68UsrAdmAgenc;
import pe.com.bn.sach.domain.BnchfReporte;


import pe.com.bn.sach.seguridad.DatosSesion;



public interface ExpedienteDAO {

	
	
	public String ActualizarEstadoCivil(Long idCliente,String usuario,String idExpediente) throws Exception;
	public 	String verificarProducto(Map map);
	public String constanteServicioHipotecario() throws Exception;
	public String verificaConyugeActivo(Bnchf13Expediente Bnchf13Expediente) throws Exception;
	public List  getFechas()throws Exception;

	  public Bnchf33PrestamoExpediente getDatosCabeceraPrecalificacion(String idExpediente)throws Exception;
	
	  public String RegistrarExpediente (
			    Bnchf13Expediente bnchf13Expediente,
			    Bnchf23ExpIngresoTitular bnchf23ExpIngresoTitular,
				List bnchf23ExpTitCuentasList,			
				List bnchf23ExpIngrTitAdicList,
				List bnchf23ExpTitCtaPeriodoList,
				List bnchf23ExpDetTitAdicList,			
				String servicio,
				String agencia,
				Bnchf67DireccionPers bnchf67DireccionPers
	   )throws Exception,SQLException;
	 
	  public String ModificarExpediente (
			    Bnchf13Expediente bnchf13Expediente,
			    Bnchf23ExpIngresoTitular bnchf23ExpIngresoTitular,
				List bnchf23ExpTitCuentasList,			
				List bnchf23ExpIngrTitAdicList,
				List bnchf23ExpTitCtaPeriodoList,
				List bnchf23ExpDetTitAdicList,			
				String servicio,
				String agencia,
				Bnchf67DireccionPers bnchf67DireccionPers
	   )throws Exception,SQLException;
	  
	//public String RegistrarInmueble (Bnchf35Inmueble bnchf35Inmueble)throws Exception;
	public Bnchf13Expediente datoBasicosExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception,SQLException;
	public Bnchf13Expediente datosComplExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception,SQLException;
	public List listExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception;
		
	public void TerminarExpediente(Bnchf13Expediente bnchf13Expediente)throws Exception;
	
	 // public String BajarExpediente(Bnchf13Expediente bnchf13Expediente,Bnchf05Observaciones bnchf05Observaciones)throws Exception;
	public String BajarExpediente(String f13IdExpediente,Bnchf05Observaciones bnchf05Observaciones,DatosSesion datosSesion)throws Exception;
	// BajarExpediente
	
	public Bnchf13Expediente EncontrarExpediente(Bnchf13Expediente bnchf13Expediente)throws Exception;	
	// PARA BUSCAR DET ALLES DE EXPEIDIENTE 
	// lista para optner expediente ingreso titular
	public List optenerExpIngrTitAdicList( Bnchf23ExpIngrTitAdic bnchf23ExpIngrTitAdic) throws Exception;
	// lista para optner expediente detalle ingreso titular
	public List optenerExpDetTitAdicList( Bnchf23ExpDetTitAdic bnchf23ExpDetTitAdic) throws Exception;
	// lista para optner expediente titular cuentas
	public List optenerExpTitCuentasList( Bnchf23ExpTitCuentas	bnchf23ExpTitCuentas) throws Exception;
	// lista para optner expediente titular cuenta periodo
	public List optenerExpTitCtaPeriodoList( Bnchf23ExpTitCtaPeriodo	bnchf23ExpTitCtaPeriodo) throws Exception;
	/* familar ini */
	// familiares
	public Bnchf13Expediente datosExpediente(String idExpediente) throws Exception,SQLException;
	
    public String VerificasiExisteCampo(Bnchf23ExpFamCuentas Bnchf23ExpFamCuentas,Long idPersonaCony) throws Exception;
    //
    public List  ExpDetFamAdicList(Bnchf23ExpDetFamAdic bnchf23ExpDetFamAdic)throws Exception;
	//encontrar Bnchf23ExpFamCtaPeriodo ingresos del conyuge 
	public List  ExpFamCtaPeriodoList(Bnchf23ExpFamCtaPeriodo bnchf23ExpFamCtaPeriodo)throws Exception;
	//Bnchf23ExpFamCuentas
	public List  ExpFamCuentasList(Bnchf23ExpFamCuentas Bnchf23ExpFamCuentas)throws Exception;
	//Bnchf23Bnchf23ExpIngresoFamiliar
	public Bnchf23ExpIngresoFamiliar ExpIngresoFamiliar(Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar)throws Exception;
	//Bnchf23ExpIngrFamAdic
	public List  ExpIngrFamAdicList(Bnchf23ExpIngrFamAdic bnchf23ExpIngrFamAdic)throws Exception;
	
	public String   encontrarClienteFamiliar(Long IdCliente)throws Exception;
    

	public String  ActualizarIngresoConyugeOtro(
			Bnchf13Expediente bnchf13Expediente, 
			Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar,		
			List bnchf23ExpIngrFamAdicList,			
			List bnchf23ExpDetTitAdicList,
			Bnchf67DireccionPers bnchf67DireccionPers
			)throws Exception;
	
	
	
	public String  ActualizarIngresoConyugeBN(
			Bnchf13Expediente bnchf13Expediente, 
			Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar,			
			List bnchf23ExpFamCuentasList ,
			List bnchf23ExpIngrFamAdicList,
			List bnchf23ExpFamCtaPeriodoList,
			List bnchf23ExpDetTitAdicList,
			Bnchf67DireccionPers bnchf67DireccionPers
			)throws Exception;
	
	
	
	public String  ActualizarIngresoConyugeOtroNO(
			Bnchf13Expediente bnchf13Expediente, 
			Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar,		
			List bnchf23ExpIngrFamAdicList,			
			List bnchf23ExpDetTitAdicList,
			Bnchf67DireccionPers bnchf67DireccionPers
			)throws Exception;
	
	
	
	public String  ActualizarIngresoConyugeBNNO(
			Bnchf13Expediente bnchf13Expediente, 
			Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar,			
			List bnchf23ExpFamCuentasList ,
			List bnchf23ExpIngrFamAdicList,
			List bnchf23ExpFamCtaPeriodoList,
			List bnchf23ExpDetTitAdicList,
			Bnchf67DireccionPers bnchf67DireccionPers
			)throws Exception;
	
	
	
	public Bnchf23ExpIngresoFamiliar  EncontrarDatosExpIngresoFamiliar(Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar)throws Exception;			
	public List bnchf54ParametroProductoList( Bnchf54ParametroProducto	bnchf54ParametroProducto) throws Exception;
	/*familiar fin */
	// 
	public Bnchf54ParametroProducto encontrarParametroProducto(Bnchf54ParametroProducto	bnchf54ParametroProducto) throws Exception;
	//	dir por pesona
	public Bnchf67DireccionPers encontrarDirecionPersona(Bnchf67DireccionPers Bnchf67DireccionPers)throws Exception;
	
	//up
	/* up */	
	
	/* actividad*/
	public List bnchf42ActividadList( Bnchf42Actividad	bnchf42Actividad) throws Exception;
	public List bnchf41UnidadProcList(Bnchf41UnidadProc bnchf41UnidadProcList)throws Exception;
	
	public List listObservaciones(Bnchf05Observaciones bnchf05Observaciones) throws Exception;
	public List ListUnidadProcFlujo(Bnchf41UnidadProc bnchf41UnidadProc)throws Exception;
	//lista de rolres
	public List  listaRoles(Bnchf68UsrAdmAgenc bnchf68UsrAdmAgenc)throws Exception;
	public String encontrarClienteEnExpediente (Long IdCliente ) throws Exception;
	
	
	public List ListaParamReqsTit() throws Exception;
	public Bnchf13Expediente datosCorreo(String idExpediente) throws Exception,SQLException;
	// public void TerminarExpediente(Bnchf13Expediente bnchf13Expediente)throws Exception;
	
	public String verificarClienteFamiliar(Long cliente) throws Exception;
	
	public String encontrarFamiliaresClienteEnExpediente (Long IPersonaFamiliar ) throws Exception;
	public String getIdConyuge(Long IdCliente) throws Exception;
	
	public String getIdPersona(Long IdCliente) throws Exception;
	
	
	public List reporteEstado(BnchfReporte bnchfReporte) throws Exception;




}
	
	


		

	
